package com.xian.d5_integer;

/**
 * 目标: 明白包装类的概念，并使用。
 *
 * 自动装箱:基本类型的数据和变量可以直接赋值给包装类型的变量。
 * 自动拆箱:包装类型的变量可以直接赋值给基本数据类型的变量。
 *
 * 包装类的特有功能
 * 包装类的变量的默认值可以是null，容错率更高。
 *
 * 可以把基本类型的数据转换成字符串类型(用处不大)
 * 调用toString()方法得到字符串结果。
 * 调用Integer.toString(基本类型的数据)。
 *
 * 可以把字符串类型的数值转换成真实的数据类型（真的很有用)
 * Integer.parseInt(“字符串类型的整数”)
 * Double.parseDouble(“字符串类型的小数”)。
 *
 * 1、包装类是什么，目的是什么?
 * 基本数据类型对应的引用类型。
 * 实现了一切皆对象。
 * ●后期集合和泛型不支持基本类型，只能使用包装类。
 *
 * 2、包装类有哪些特殊功能?
 * ●可以把基本类型的数据转换成字符串类型(用处不大)
 * 可以把字符串类型的数值转换成真实的数据类型（真的很有用)
 */
public class Test {
    public static void main(String[] args) {
        int a = 10;
        Integer a1 = 20;
        Integer a2 = a;  //自动装箱
        System.out.println(a);
        System.out.println(a1);
        System.out.println(a2);


        Integer it = 100;
        int it1 = it;   //自动拆箱
        System.out.println(it1);

        double db = 3.33;
        Double db1 = db;  //自动装箱
        System.out.println(db1);

        //int age = null;
        Integer age = null;
        Integer age1 = 0;

        //1、包装类可以把基本类型的数据转换成字符串形式。(没啥用)
        Integer i3 = 23;
        String s = i3.toString();
        System.out.println(s);

        String res = Integer.toString(i3);
        System.out.println(res + 1);

        //可以直接+字符串得到字符串类型
        String res1 = i3 + "";
        System.out.println(res1+1);

        //转换成整数
        String strData = "123";
        int age2 = Integer.parseInt(strData);
        System.out.println(age2+1);

        int age3 = Integer.valueOf(strData);
        System.out.println(age3+2);

    }
}
